package com.ruoyi.contract.domain.invoiceVo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.contract.domain.InvoiceAttachment;
import com.ruoyi.contract.domain.companyVo.CompanyName;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * @program: Smart-contract-management-system-replica-system
 * @description: 发票查询、修改，新增相关值对象
 * @author: coderChen
 * @create: 2024-10-21 15:10
 **/

public class SelectInvoiceVo {
    /** id */
    private Long invoiceId;

    /** 发票所属合同编码 */
    @Excel(name = "发票所属合同编码")
    private String contractCode;

    private String contractPdfAddress;

    /** 发票所属合同状态：是否删除 */
    private String contractStatus;

    /** 发票所属公司id */
    @Excel(name = "发票所属公司id")
    private Long belongingCompanyId;

    /** 发票编码 */
    @Excel(name = "发票编码")
    private String code;

    /** 发票类型 */
    @Excel(name = "发票类型")
    private String type;

    /** 发票金额 */
    @Excel(name = "发票金额")
    private BigDecimal money;

    /** 销方公司id */
    @Excel(name = "销方公司id")
    private Long salesInvoiceId;

    /** 购方公司id */
    @Excel(name = "购方公司id")
    private Long buyInvoiceId;

    /** 开票日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "开票日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date invoiceTime;

    /** 财务入账类别 */
    @Excel(name = "财务入账类别")
    private String accountType;

    /** 上传者id */
    @Excel(name = "上传者id")
    private Long addUserId;

    /** 上传者id */
    @Excel(name = "上传者")
    private String addUser;

    /** 上传时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "上传时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date addTime;

    /** 修改者 */
    @Excel(name = "修改者")
    private String updateUser;

    /** 修改者id */
    @Excel(name = "修改者id")
    private Long updateUserId;

    /** 修改时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "修改时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date updateTime;

    /** 发票内容 */
    @Excel(name = "发票内容")
    private String content;

    /** 上传pdf地址 */
    @Excel(name = "上传pdf地址")
    private String pdfAddress;

    /** 备注 */
    @Excel(name = "备注")
    private String remark;

    /**发票所属公司**/
    private String belongingCompanyName;

    /** 销方公司信息 */
    @Excel(name = "销方公司信息")
    private List<InvoiceInfoVo> saleCompanyInfoList;

    /** 购方公司信息 */
    @Excel(name = "购方公司信息")
    private List<InvoiceInfoVo> purchaseCompanyInfoList;

    /** 发票附件信息 */
    @Excel(name = "发票附件信息")
    private List<InvoiceAttachment> invoiceAttachmentInfo;

    public Long getInvoiceId() {
        return invoiceId;
    }

    public void setInvoiceId(Long invoiceId) {
        this.invoiceId = invoiceId;
    }

    public String getContractPdfAddress() {
        return contractPdfAddress;
    }

    public void setContractPdfAddress(String contractPdfAddress) {
        this.contractPdfAddress = contractPdfAddress;
    }

    public String getContractCode() {
        return contractCode;
    }

    public void setContractCode(String contractCode) {
        this.contractCode = contractCode;
    }

    public Long getBelongingCompanyId() {
        return belongingCompanyId;
    }

    public void setBelongingCompanyId(Long belongingCompanyId) {
        this.belongingCompanyId = belongingCompanyId;
    }

    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    public BigDecimal getMoney() {
        return money;
    }

    public void setMoney(BigDecimal money) {
        this.money = money;
    }

    public Long getSalesInvoiceId() {
        return salesInvoiceId;
    }

    public void setSalesInvoiceId(Long salesInvoiceId) {
        this.salesInvoiceId = salesInvoiceId;
    }

    public Long getBuyInvoiceId() {
        return buyInvoiceId;
    }

    public void setBuyInvoiceId(Long buyInvoiceId) {
        this.buyInvoiceId = buyInvoiceId;
    }

    public Date getInvoiceTime() {
        return invoiceTime;
    }

    public void setInvoiceTime(Date invoiceTime) {
        this.invoiceTime = invoiceTime;
    }

    public String getAccountType() {
        return accountType;
    }

    public void setAccountType(String accountType) {
        this.accountType = accountType;
    }

    public Long getAddUserId() {
        return addUserId;
    }

    public void setAddUserId(Long addUserId) {
        this.addUserId = addUserId;
    }

    public String getAddUser() {
        return addUser;
    }

    public void setAddUser(String addUser) {
        this.addUser = addUser;
    }

    public Date getAddTime() {
        return addTime;
    }

    public void setAddTime(Date addTime) {
        this.addTime = addTime;
    }

    public String getUpdateUser() {
        return updateUser;
    }

    public void setUpdateUser(String updateUser) {
        this.updateUser = updateUser;
    }

    public String getContent() {
        return content;
    }

    public void setContent(String content) {
        this.content = content;
    }

    public String getPdfAddress() {
        return pdfAddress;
    }

    public void setPdfAddress(String pdfAddress) {
        this.pdfAddress = pdfAddress;
    }

    public String getBelongingCompanyName() {
        return belongingCompanyName;
    }

    public void setBelongingCompanyName(String belongingCompanyName) {
        this.belongingCompanyName = belongingCompanyName;
    }

    public List<InvoiceInfoVo> getSaleCompanyInfoList() {
        return saleCompanyInfoList;
    }

    public void setSaleCompanyInfoList(List<InvoiceInfoVo> saleCompanyInfoList) {
        this.saleCompanyInfoList = saleCompanyInfoList;
    }

    public List<InvoiceInfoVo> getPurchaseCompanyInfoList() {
        return purchaseCompanyInfoList;
    }

    public void setPurchaseCompanyInfoList(List<InvoiceInfoVo> purchaseCompanyInfoList) {
        this.purchaseCompanyInfoList = purchaseCompanyInfoList;
    }
    public Long getUpdateUserId() {
        return updateUserId;
    }

    public void setUpdateUserId(Long updateUserId) {
        this.updateUserId = updateUserId;
    }

    public Date getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }
    public List<InvoiceAttachment> getInvoiceAttachmentInfo() {
        return invoiceAttachmentInfo;
    }

    public void setInvoiceAttachmentInfo(List<InvoiceAttachment> invoiceAttachmentInfo) {
        this.invoiceAttachmentInfo = invoiceAttachmentInfo;
    }

    public String getContractStatus() {
        return contractStatus;
    }

    public void setContractStatus(String contractStatus) {
        this.contractStatus = contractStatus;
    }
}
